package com.example.demoapplication;

import android.util.Log;

import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;

/*
* LiveData 是一种可观察的数据存储器类。与常规的可观察类不同，LiveData 具有生命周期感知能力，意指它遵循其他应用组件
* （如 Activity、Fragment 或 Service）的生命周期。
* 这种感知能力可确保 LiveData 仅更新处于活跃生命周期状态的应用组件观察者。
* https://developer.android.com/topic/libraries/architecture/livedata
* */
public class MyViewModelWithLiveData extends ViewModel {
    // 容器类型
    private MutableLiveData<Integer> likedNumber;

    public MutableLiveData<Integer> getLikedNumber() {
        // 避免likedNumber为空
        if (likedNumber == null){
            likedNumber = new MutableLiveData<>();
            likedNumber.setValue(0);
        }
        return likedNumber;
    }

    public void addLikedNumber(int n){
        Log.d("MyViewModelWithLiveData", "addLikedNumber: " + n);
        likedNumber.setValue(likedNumber.getValue() + n);

    }

}
